home *** CD-ROM | disk | FTP | other *** search
- /*
- File: ScriptableObjects.h
-
- Contains: Script handling & OSA interface
-
- Developed by:
-
- Paul G Smith (commstalk hq & Full Moon Software, Inc)
-
- you can leave messages at (UK): 0727 844232; (US): 408 253 7199
- BUT I prefer to be contacted by e-mail
- AppleLink: SMITH.PG
- Internet: SMITH.PG@applelink.apple.com
-
- "SimpliFace" Sample code to accompany develop article
- on techniques for embedding scripts in applications.
-
- */
-
-
- #ifndef __SCRIPTOBJECTS__
- #define __SCRIPTOBJECTS__
-
-
- #ifndef __APPLEEVENTS__
- #include "AppleEvents.h"
- #endif
-
- #ifndef __PASCALSTRING__
- #include <PascalString.h>
- #endif
-
- #ifndef __AERegistry__
- #include <AERegistry.h>
- #endif
-
- #ifndef __OSA__
- #include <OSA.h>
- #endif
-
- #ifndef __LISTOFLONGS__
- #include "ListOfLongs.h"
- #endif
-
-
-
-
- class TScriptableObject : HandleObject
- {
- public:
- // Our constructor & destructor
- TScriptableObject();
- virtual ~TScriptableObject();
-
- virtual OSErr CountElements (DescType desiredClass,
- long *result);
-
- virtual OSErr CompareWith (DescType comparisonOperator,
- const TScriptableObject *objToCompare,
- Boolean *result);
-
- virtual OSErr ResolveContainer (TScriptableObject **theContainerObj);
-
- virtual OSErr ResolveElementByName(DescType desiredClass,
- CStr255& nameStr,
- TScriptableObject **theResultObj);
-
- virtual OSErr ResolveElementByIndex(DescType desiredClass,
- short theIndex,
- TScriptableObject **theResultObj);
-
- virtual OSErr OpenObject (void);
-
- virtual OSErr CloseObject (void);
-
- virtual OSErr GetData (AEDesc *result);
-
- virtual OSErr SetData (const AEDesc *theData);
-
- virtual OSErr GetProperty (DescType propertyID, DescType wantType, AEDesc *result);
-
- virtual OSErr SetProperty (DescType propertyID, const AEDesc *theData);
-
- virtual OSErr CreateNewElement (DescType desiredClass,
- DescType position,
- AEDesc *theData,
- AERecord *theProperties,
- TScriptableObject *theContainerObj,
- TScriptableObject **theNewObj);
-
- virtual OSErr DeleteObject (void);
-
- virtual OSErr GetObjectSpecifier (AEDesc *result);
-
- virtual OSErr GetTargetObjectSpecifier (EventRecord& theEvent, AEDesc *result);
-
- OSAID GetObjScript(void) { return fAttachedScript; };
-
- protected:
- OSAID fAttachedScript;
- };
-
-
- class TScriptAdministrator : HandleObject
- {
- public:
- // Our constructor & destructor
- TScriptAdministrator();
- virtual ~TScriptAdministrator();
-
- virtual OSAID GetAttachedScript(TScriptableObject* theObj);
-
- virtual OSAError ReleaseAttachedScript(TScriptableObject* theObj);
-
- void RunStartupScript(void);
-
- OSAError DoScript(AEDesc *scriptDesc, AEDesc *resultDesc);
-
- OSAError LoadScriptFromFile(FSSpec *fileSpec, OSAID *theScriptID);
- OSAError SaveScriptToFile(FSSpec *fileSpec, OSAID theScriptID);
-
- Boolean StartupScriptIsRunning(void) { return fStartupScriptRunning; };
-
- protected:
- FSSpec fPrefsFileSpec;
- Boolean fStartupScriptRunning; // we must not run it recursively
- };
-
-
-
- // globals & global routines
-
- extern TScriptAdministrator* gScriptAdministrator;
- extern ComponentInstance gScriptingComponent;
- extern AEAddressDesc gSelfAddress;
- extern ProcessSerialNumber gSelfPSN;
-
-
- OSAError StartScriptAdministrator(void);
-
- OSAError StopScriptAdministrator(void);
-
-
- #endif
-